﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

public static class MyHelper
{
    //Html.ActionLink加上支持图片链接的功能
    //测试发现图片有边框，加一行
    //imgTagBuilder.MergeAttribute("border","0"); 
    public static MvcHtmlString ActionLinkWithImage(this HtmlHelper html, string imgSrc, string actionName)
    {
        var urlHelper = new UrlHelper(html.ViewContext.RequestContext);

        string imgUrl = urlHelper.Content(imgSrc);
        TagBuilder imgTagBuilder = new TagBuilder("img");
        imgTagBuilder.MergeAttribute("src", imgUrl);
        string img = imgTagBuilder.ToString(TagRenderMode.SelfClosing);

        string url = urlHelper.Action(actionName);

        TagBuilder tagBuilder = new TagBuilder("a")
        {
            InnerHtml = img
        };
        tagBuilder.MergeAttribute("href", url);

        return new MvcHtmlString(tagBuilder.ToString(TagRenderMode.Normal));
    }

    public static MvcHtmlString ActionLinkWithImage(this HtmlHelper html, string imgSrc, string actionName, string controllerName, object routeValue = null)
    {
        var urlHelper = new UrlHelper(html.ViewContext.RequestContext);

        string imgUrl = urlHelper.Content(imgSrc);
        TagBuilder imgTagBuilder = new TagBuilder("img");
        imgTagBuilder.MergeAttribute("src", imgUrl);
        string img = imgTagBuilder.ToString(TagRenderMode.SelfClosing);

        string url = urlHelper.Action(actionName, controllerName, routeValue);

        TagBuilder tagBuilder = new TagBuilder("a")
        {
            InnerHtml = img
        };
        tagBuilder.MergeAttribute("href", url);

        return new MvcHtmlString(tagBuilder.ToString(TagRenderMode.Normal));
    }
}